package com.richpay.basejava.base06;

public class ClassDemo {
	/**
	* 面试题：你是如果理解面向对象的？
	* A:面向对象是相对于面对过程而言的，不管是面向过程还是面向对象都是人们解决问题的一种思考方式。
	* B:使用面向对象的思想解决问题使我们的角色发生了转变，由执行者变成了指挥者。
	* C:面向对象的思维方式解决问题可以将复杂问题简单化。
	* 
	* 使用面向对象的方式解决问题的步骤:
	* A:分析问题领域中涉及到哪些对象。
	* B:考虑具体的功能应该分配给哪些对象。
	* C:通过对象之间的交互完成具体的功能。
	*  
	* 面向对象的核心:类和对象。
	* 类:具有相同属性和行为的对象的集合。
	* 对象:类的实例，是实实在在存在的个体。
	* 
	* 类和对象的关系:类是对象的模板,对象是类的实例。
	* 
	* 类的定义语法格式:
	* [访问修饰符] class 类名{
	*  //成员变量和成员方法
	* [访问修饰符] 数据类型 成员变量名(对象名)[=初始值];
	* [访问修饰符] 方法返回值的数据类型 方法名([形参列表]){
	* 	// 执行的方法代码
	* 	}
	* 
	* } 
	* 
	* 类的解说:
	*	[]:代表可有可无
	*	访问修饰符:对于类来说，可有的取值为:public和默认值(什么也不写的情况，即default(friendly))。
	*	class:定义类的关键字，后面跟类名。
	*	类名:任何合法的标识符,在java中对应类的命名采用帕斯卡命名法(每个单词的首字母大写)。
	* 
	* 成员变量解说:
	*	访问修饰符:对于成员变量而言，可能的取值为:private default(不可用显示写出) protected public。
	*	数据类型:可以是Java的八大基本数据类型和引用数据类型。
	*	变量名(对象名):任何合法的标识符，在Java中采用驼峰命名法(第一个单词全部小写，后续单词的首字母大写)
	*   一般要见名知意，变量名可以赋初值也可以不赋初值。
	* 
	* 成员方法解说:
	*	访问修饰符:对于成员方法而言，可能的取值为:private default(不可用显示写出) protected public。
	*	方法的返回值类型:可以是Java的八大基本数据类型和引用数据类型。
	*	方法名:唯一标识方法的标识符，需要时根据方法名调用
	*	参数列表:数据类型 变量名,数据类型 变量名 ...
	* 
	* 如何实例化对象
	* 类名 对象名;//声明对象
	* 对象名=new 类名();//实例化对象
	* 上述两句可以合成一句话，即声明并实例化对象
	* 类名 对象名=new 类名();
	*		  
	*
	*/

	public static void main(String[] args){
		// 实例化对象
		Person p1;
		p1=new Person();

		// 定义对象的方法:对象名.方法名([实参列表])
		p1.speak();
		p1.eat("李明","中午","面条");

		int age=p1.getAge();
		System.out.println("age="+age);
		p1.age=-1;
		age=p1.getAge();
		System.out.println("age="+age);
		p1.setAge(-1);
		age=p1.getAge();
		System.out.println("age="+age);
	}

}
